package com.wzy.dao.user;

import java.util.List;
import java.util.Map;

import com.wzy.entity.User;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {
	/**
	 * 查询总共记录数
	 * @return
	 */
	int count();
	
	List<User> list();

	/**
	 * 根据用户名查询用户
	 * @param userName
	 * @return
	 */
	public List<User> getListByName(String userName);

	/**
	 * 查询用户列表(参数为对象)
	 * @param user
	 * @return
	 */
	public List<User> getListByUser(User user);

	/**
	 * 查询用户列表(参数为map)
	 * @param map
	 * @return
	 */
	public List<User> getListByMap(Map<String, Object> map);
	/**
	 * 查询用户列表(使用resultMap)
	 * @param map
	 * @return
	 */
	public List<User> getListByMap2(Map<String, Object> map);

	/**
	 * 新增
	 * @param user
	 * @return
	 */
	public int add(User user);

	/**
	 * 修改
	 * @param user
	 * @return
	 */
	public int update(User user);

	/**
	 * 修改密码
	 * @param id
	 * @param pwd
	 * @return
	 */
	public int updatePwd(@Param("id")Integer id ,@Param("pwd")String pwd);

	/**
	 * 删除
	 * @param delId
	 * @return
	 */
	public int deleteUserById(@Param("id")Integer delId);

	/**
	 * 查询用户列表(使用resultMap-association)
	 * @param map
	 * @return
	 */
	public List<User> getListByMap3(Map<String, Object> map);

	/**
	 * 查询用户(使用resultMap-collection)
	 * @param id
	 * @return
	 */
	public User getUserById(@Param("id")Integer id);

	/**
	 * 查询用户列表根据用户名和角色编号
	 * @param userName
	 * @param roleId
	 * @return
	 */
	public List<User> getListByUserNameRoleId(@Param("userName") String userName,@Param("userRole") Integer roleId);


	public List<User> getListByRoleId(Integer[] roleIds);

	public List<User> getListByRoleId2(List<Integer> roleIds);

	public List<User> getListByRoleId3(Map<String, Object> map);

	public List<User> getListByUserNameRoleId_choose(@Param("userName") String userName,@Param("userRole") Integer userRole);

	public List<User> getPageList(@Param("beginIndex") Integer beginIndex,@Param("pageSize")Integer pageSize);
}
